1. Field of the Invention
This invention relates generally to computer systems and their associated peripheral devices, and more particularly to methods and apparatus for booting a computer system from a user defined peripheral device.
2. Description of the Related Art
Computer systems today typically have several connected peripheral devices. These devices include various drives which allow data to be written or read by the computer system to or from various media. For example, such devices include floppy drives, tape drives, hard drives, CD-ROMs, CD-R drives, scanners, and DVD drives among others. These devices generally communicate with a computer system through specific interface protocols, which most commonly include what are known as IDE protocols and SCSI protocols. Thus, peripheral manufactures will generally manufacture protocol specific devices, which are designated to be either an IDE device or a SCSI device, which may or may not have the same capabilities.
For example, the operation of an IDE device is typically slower than that of a SCSI device, and SCSI devices tend to have superior multi-tasking capabilities over IDE devices. Another drawback of an IDE device is that the IDE protocol only enables data transfers of fixed block sizes (i.e., 512 bytes per sector?), whereas SCSI devices are able to transfer data having variable block sizes. Although additional custom processing can be developed to improve the performance of IDE devices, this additional development has the disadvantage of adding a substantial amount of front-end effort as well as processing time. Further, SCSI connectors can typically accomodate connection of up to 7 or 15 devices to the computer, whereas IDE connectors typically can handle only two devices. These drawbacks therefore make IDE devices less attractive than their SCSI counterparts.
As is well known, the basic operation of a computer system includes booting its basic software algorithms to prepare the computer system for normal operation. Such booting is accomplished by reading and then executing commands of the basic software algorithms from a particular medium. Therefore, the booting operation will require identifying the device (which is connected to the computer system) that has the medium that is to be read. The identified device is commonly known as "the boot device."
Conventionally, booting operations of computer systems are pre-designed to search for IDE devices and then search for SCSI devices, identifying the first found IDE device as the boot device. Accordingly, if an IDE device is connected to the computer system, the system will automatically boot from the IDE device, whether or not the user prefers to boot from the IDE device. Even if the user prefers to boot from a higher performance SCSI device, the user's computer system will not allow the user to indicate a booting preference. As a result, there is currently no efficient mechanism available to enable a user to take advantage of many superior capabilities and performance of SCSI devices during a boot operation.
In view of the foregoing, there is a need for improved techniques for custom booting computer systems. In particular, there is a need for techniques that enable booting a computer system from a user selected SCSI device, even when an IDE device is connected to the computer system.